/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package source;

import com.sun.j3d.utils.universe.SimpleUniverse;

import javax.media.j3d.*;
import com.sun.j3d.utils.geometry.*;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.vecmath.*;
import javax.media.j3d.BranchGroup;

class Hello3d {
	SimpleUniverse universe = new SimpleUniverse();
	BranchGroup bg = new BranchGroup();
	
	public Hello3d() {		
		// сфера
		Sphere sphere = new Sphere(0.2f);
//		// ее координаты в пространстве
//		Vector3f coordSphere = new Vector3f(0.1f, 0.1f, 0.1f);
//		
//		// Трансформация
//		Transform3D trans = new Transform3D();
//		trans.setTranslation(coordSphere);
//		
//		// группа
//		TransformGroup tg = new TransformGroup();
//		tg.setTransform(trans);
//		
//		// добавили в группу
//		tg.addChild(sphere);
//		bg.addChild(tg);
		
		// задаем цвет
		Color3f light1Color = new Color3f(1.7f, 0.1f, 0.1f);
		// кость точка от которой создается свет
		BoundingSphere bounds =	new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);
		// положение источника света в пространстве
		Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f);
		// сам источник света
		DirectionalLight light1 = new DirectionalLight(light1Color, light1Direction);
		light1.setInfluencingBounds(bounds);

		bg.addChild(light1);
		
		universe.getViewingPlatform().setNominalViewingTransform();
//		universe.addBranchGraph(bg);
		
		// ее координаты в пространстве
		TransformGroup tg = new TransformGroup();
		tg.addChild(sphere);
		
		
		Vector3f coordSphere = new Vector3f(0.1f, 0.1f, 0.1f);
		for(float crd = 0f; crd < 0.6f; crd += 0.05f) {
			coordSphere = null;
			coordSphere = new Vector3f(crd, crd, crd);
			
			Transform3D transform = new Transform3D();
			transform.setTranslation(coordSphere);
			
			tg.setTransform(transform);
			try {
				Thread.sleep(5000);
			} catch (InterruptedException ex) {
				Logger.getLogger(Hello3d.class.getName()).log(Level.SEVERE, null, ex);
			}
		}
		bg.addChild(tg);
		update(bg);
//		
//		// Трансформация
//		Transform3D trans = new Transform3D();
//		trans.setTranslation(coordSphere);
//		
//		// группа
//		TransformGroup tg = new TransformGroup();
//		tg.setTransform(trans);
//		
//		// добавили в группу
//		tg.addChild(sphere);
//		bg.addChild(tg);
	}
	private void update(BranchGroup bg) {
		universe.addBranchGraph(bg);
	}
}

public class test3D {
//	public static void main(String[] args ) {
//		Hello3d test = new Hello3d();
//	}
}
